package spring.cloud.tasks.tasks_manager.domain;

import com.alibaba.fastjson2.annotation.JSONField;
import spring.cloud.tasks.common.task_item_allot.TaskItem;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 创建实例
 */
public class TaskInstance {
    private String taskType;
    private String taskId;
    private String signature;//签名  签名一旦改变那么则需要重新进行任务分配
    private String taskInstanceId;
    private String taskTurnId;//轮次id=任务实例#时间戳 一个任务实例同一时刻只能跑一个，可以支持重跑。
    /**
     * 创建轮次信息
     */
    List<TaskItem> taskItemList = new ArrayList<>();
    private int loadLevel;
    @JSONField(name = "nextFireDate", format = "yyyy-MM-dd HH:mm:ss")
    private Date nextFireDate;//执行的时间
    @JSONField(name = "timeoutDateTime", format = "yyyy-MM-dd HH:mm:ss")
    private Date timeoutDateTime;//超时时间
    @JSONField(name = "lockDateTime")
    private Date lockDateTime;//锁时间


}
